package com.vcourse.service.admin.service;

import com.alibaba.fastjson.JSONObject;
import com.vcourse.service.admin.entity.Permission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vcourse.service.admin.vo.PermissionVo;

import java.util.List;

/**
 * <p>
 * 权限 服务类
 * </p>
 *
 * @author Zengsh123
 * @since 2020-06-15
 */
public interface PermissionService extends IService<Permission> {
    /**
     * 获取后台系统全部菜单
     * @return 树形菜单
     */
    List<PermissionVo> queryAllMenu();

    /**
     * 递归删除菜单及其子菜单
     * @param id 菜单id
     * @return 是否成功
     */
    boolean removeChildById(String id);

    /**
     * 根据用户id获取用户菜单名
     */
    List<String> selectPermissionValueByUserId(String id);

    /**
     * 根据用户id获取用户菜单信息
     */
    List<JSONObject> selectPermissionByUserId(String id);

    /**
     * 给角色分配权限
     */
    void saveRolePermissionRelationShip(String roleId, String[] permissionId);

    /**
     * 根据角色获取菜单
     */
    List<PermissionVo> selectAllMenu(String roleId);


}
